///////////////////////////////////////////////////////////////////////////////
///
/// Cylan Client Core
/// Copyright (C) Shenzhen Cylan Tech. Co., Ltd. 2012
///
/// @file       Traffic.h
/// @brief      流量统计
///
///////////////////////////////////////////////////////////////////////////////
#ifndef CC_TRAFFIC_H
#define CC_TRAFFIC_H

#include "Core/Core.h"

/// @def TRAFFIC_TYPE_INCOMING 0x00
/// @brief 流量类型: 下载
#define TRAFFIC_TYPE_INCOMING   0x00

/// @def TRAFFIC_TYPE_OUTGOING 0x01
/// @brief 流量类型: 上传
#define TRAFFIC_TYPE_OUTGOING   0x01


/**
 * @fn CC_STATUS TrafficInit()
 * @brief 初始化流量统计
 * @retval ERR_SUCCESS 初始化成功
 * @retval ERR_UNSUCCESS 初始化失败
 * @note 只需要在程序开始时执行一次初始化即可
 */
CC_STATUS TrafficInit();

/**
 * @fn int TrafficGet(int type)
 * @brief 获取流量数据
 * @param IN type 流量类型(发送, 接收)
 * @return 流量字节数
 */
int TrafficGet(int type);

/**
 * @fn void TrafficReset()
 * @brief 重置流量计数器, 发送和接收均会重置为0
 */
void TrafficReset();

/**
 * @fn void TrafficUninit()
 * @brief 释放流量统计数据
 * @note 在程序退出前调用一次即可
 */
void TrafficUninit();

#endif // CC_TRAFFIC_H
